const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'js/index.js',
    path: path.resolve(__dirname, 'build')
  },
  module: {
    rules: [
      {
        test: /\.less$/,
        use: ['style-loader', 'css-loader', 'less-loader']
      },
      // {
      //   // webpack4 实现方式
      //   //  只能处理 css 图片
      //   test: /\.(jpg|png|gif)$/,
      //   loader: 'url-loader',
      //   options: {
      //     limit: 8 * 1024
      //   }
      // },
      {
        // webpack5 实现方式
        // 只能处理 css 图片
        test: /\.(jpg|png|gif)$/,
        type: 'asset',
        //解析
        parser: {
          //转base64的条件
          dataUrlCondition: {
            maxSize: 25 * 1024 // 25kb
          }
        },
        generator: {
          //与output.assetModuleFilename是相同的,这个写法引入的时候也会添加好这个路径
          filename: 'img/[name].[hash:6][ext]',
          //打包后对资源的引入，文件命名已经有/img了
          publicPath: './'
        }
      },
      {
        // 处理 HTML 中图片资源
        test: /\.html$/,
        use: ['html-loader']
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html'
    })
  ],
  mode: 'development'
}
